public class Radio implements Sintonizable{
    private double estacion;
    private String frecuencia;
    protected boolean encendido;
    private Boton[] botones;

    public Radio(){
        frecuencia = "FM";
        estacion = 87.9;
        encendido = false;
        
        //Inicializar lista
        botones = new Boton[12];
        for(int i=0; i<12; i++){
            botones[i] = new Boton();
        }
    }

    public double getEstacion() {
        return estacion;
    }

    public void setEstacion(double estacion) {
        this.estacion = estacion;
    }

    public String getFrecuencia() {
        return frecuencia;
    }

    public void setFrecuencia(String frecuencia) {
        this.frecuencia = frecuencia;
    }

    public boolean getEncendido() {
        return encendido;
    }

    public void setEncendido(boolean encendido) {
        this.encendido = encendido;
    }

    //enciende la radio
    public void encender(){
        encendido = true;
    }

    //apaga la radio
    public void apagar(){
        encendido = false;
    }

    //Cambia la frecuencia al siguiente multiplo.
    public void modificarEstacionAdelante(){
        //Si la estacion es la FM
        if(frecuencia.equals("FM")){
            //Si esta al final del dial de las frecuencias, la pone al incio
            if(estacion == 107.9)
               estacion = 87.9;
            //Si esta en cualquier otro lado, avanza 0.2
            else
                estacion += 0.2;
        }
        //Si esta en la AM
        else{
            //Si esta al final del dial de las frecuencias, la pone al inicio
            if(estacion == 1610)
                estacion = 530;
            //Si esta en cualquier otro lado, avanza 10
            else
                estacion += 10;
        }
    }

    //Cambia la frecuencia al multiplo anterior
    public void modificarEstacionAtras(){
        //Si la estacion es la FM
        if(frecuencia.equals("FM")){
            //Si esta al inicio del dial de las frecuencias, lo cambia al final
            if(estacion == 87.9)
                estacion = 107.9;
            //Si esta en cualquier otro lado, retrocede 0.2
            else
                estacion -= 0.2;
        }
        //Si esta en la AM
        else{
            //Si esta al final del dial de las frecuencias, lo cambia al final
            if(estacion == 530)
                estacion = 1610;
            //Si esta en cualquier otro lado, retrocede 10
            else
                estacion -= 10;
        }
    }

    //Carga la estacion guardada en el boton solicitado
    public void modificarEstacionBoton(int num_boton){
        frecuencia = botones[num_boton].getFrecuencia();
        estacion = botones[num_boton].getEstacion();
    }

    //Errata: deberia ser cambiarEstacion.
    //Cambia de estacion: FM a AM y viceversa. Sintoniza una frecuencia correspondiente a la estacion.
    public void cambiarFrecuencia(){
        if(frecuencia.equals("FM")){
            frecuencia = "AM";
            estacion = 530;
        }
        else{
            frecuencia = "FM";
            estacion = 87.9;
        }
    }

    //Guarda una estacion en la memoria de un boton
    public void guardarEstacion(String frecuencia, double estacion, int num_boton){
        botones[num_boton].setEstacion(estacion);
        botones[num_boton].setFrecuencia(frecuencia);
    }
}
